Cache memories are common components in processors and computer systems. Modern processors can include multiple levels of cache memories. Such cache memories are adapted to store information recently used and/or frequently used, such that latency incurred in obtaining the data from further portions of a system storage hierarchy (including a system memory, mass storage or so forth) can be avoided. Depending on a type of workload being executed in a system, cache memory usage may not improve performance. For example, when a working set of an application exceeds a size of the cache memory, any data of the working set stored in the cache memory may have already been evicted by new data before it is reused.
In particular workload situations such as where streaming accesses are prevalent, an outer loop that proceeds through a large number of time steps may not benefit from use of a cache memory, as a streaming data access of one or more internal loops causes data to be evicted prior to its usage in a next iteration of the outer loop, impacting performance.